package geektime.spring.springbucks.waiter.controller;

import geektime.spring.springbucks.waiter.controller.request.NewOrderRequest;
import geektime.spring.springbucks.waiter.model.Coffee;
import geektime.spring.springbucks.waiter.model.CoffeeOrder;
import geektime.spring.springbucks.waiter.service.CoffeeOrderService;
import geektime.spring.springbucks.waiter.service.CoffeeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/order")
@Slf4j
public class CoffeeOrderController {
//    @Autowired
//    private CoffeeOrderService orderService;
//    @Autowired
//    private CoffeeService coffeeService;
//
//    @GetMapping(path ="json/{id}", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    public CoffeeOrder getOrder(@PathVariable("id") Long id) {
//        return orderService.get(id);
//    }
//
//    @GetMapping(path ="xml/{id}", produces = MediaType.APPLICATION_XML_VALUE)
//    public CoffeeOrder getXMLOrder(@PathVariable("id") Long id) {
//        return orderService.get(id);
//    }
//
//    @PostMapping(path = "/", consumes = MediaType.APPLICATION_JSON_VALUE,
//            produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
//    @ResponseStatus(HttpStatus.CREATED)
//    public CoffeeOrder create(@RequestBody NewOrderRequest newOrder) {
//        log.info("Receive new Order {}", newOrder);
//        Coffee[] coffeeList = coffeeService.getCoffeeByName(newOrder.getItems())
//                .toArray(new Coffee[] {});
//        return orderService.createOrder(newOrder.getCustomer(), coffeeList);
//    }
}
